package com.mec.ServerCluser.core;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mec.ServerCluser.Interface.IAppUserClient;

import java.lang.reflect.InvocationTargetException;
import java.util.List;
import java.util.Map;

/**
 * 用户客户端
 * 数据结构：以服务名称为键，以应用服务器的信息列表为值的Map（所有服务名对应的服务器列表都有）。
 *
 * 功能：向注册中心发送更新服务列表请求，并通过注册中心发来的列表更新自己的数据；
 * 根据均衡负载策略（接口）选择应用服务器
 */
public class AppUserClientService implements IAppUserClient {
    private Gson gson;

    public AppUserClientService() {
        this.gson = new GsonBuilder().create();
    }

    @Override
    public String getServiceMapFromRegistryCenter() {
        Map<String, List<AppServerDefination>> serviceMap = RegistryCenter.getServiceMap();
        String result = gson.toJson(serviceMap);

        return result;
    }
}
